package start.spring.basic.demo.service.demo;

import java.util.List;

import com.alibaba.fastjson.JSONObject;

import start.spring.basic.demo.entity.GgPzSys;
import start.spring.basic.demo.entity.Test;
import start.spring.basic.demo.service.IBaseService;
import start.spring.basic.page.PageQuery;
import start.spring.basic.page.PageResult;
import start.spring.basic.response.ResponseData;

/**
 * 
 * ****************************************************************************
 * 开发样例业务员处理接口
 *
 * @author(作者)：xuyongyun	
 * @date(创建日期)：2021年4月8日
 ******************************************************************************
 */
public interface IDemoService extends IBaseService {

	/**
	 * redis存放数据
	 *	
	 * @return
	 * @since           1.0
	 */
	ResponseData<JSONObject> operateRedis();

	/**
	 * mybatis plus查询某个表的所有记录
	 *	
	 * @return
	 * @since           1.0
	 */
	ResponseData<List<GgPzSys>> MpQertyAll();

	/**
	 * mybatis plus分页查询某个表的记录
	 * @param pageQuery 
	 *	
	 * @return
	 * @since           1.0
	 */
	PageResult<GgPzSys> mpQueryPage(PageQuery pageQuery);

	/**
	 * mybatis plus切换数据源分页查询某个表的记录
	 * @param pageQuery 分页参数
	 * @param a 业务查询条件
	 *	
	 * @return
	 * @since           1.0
	 */
	PageResult<Test> mpMultiDbQueryPage(PageQuery pageQuery, String a);

	/**
	 * 
	 * mybatis切换数据源分页查
	 *	
	 * @param pageQuery
	 * @param a
	 * @return
	 * @since           1.0
	 */
	PageResult<Test> mbMultiDbQueryPage(PageQuery pageQuery, String a);

	/**
	 * 
	 * jdbctemplete分页查询
	 *	
	 * @param pageQuery 分页参数
	 * 
	 * @return
	 * @since           1.0
	 */
	PageResult<GgPzSys> jtQueryPage(PageQuery pageQuery);

	/**
	 * jdbctemplete切换数据源分页查询某个表的记录
	 *	
	 * @param pageQuery
	 * @param fpdm
	 * @return
	 * @since           1.0
	 */
	PageResult<Test> jtMultiDbQueryPage(PageQuery pageQuery, String fpdm);

	/**
	 * 原生jdbc跨数据库操作
	 *	
	 * @return
	 * @since           1.0
	 */
	ResponseData<String> jdbcOperate();

	/**
	 * 测试mybatis plus下使用UidGenerator
	 *	
	 * @return
	 * @since           1.0
	 */
	ResponseData<String> mpUidGenerator();

	/**
	 * 测试jdbctemplete下使用UidGenerator，此方式下事务控制不生效
	 *	
	 * @return
	 * @since           1.0
	 */
	ResponseData<String> jtUidGenerator();
	
}
